export default class EventBus {
  constructor() {
    this.listener_list = {};
  }
  /**
   * 监听事件
   * @param {*} name 事件名
   * @param {*} callback 回调函数
   */
  on(name, callback) {
    this.listener_list[name] = this.listener_list[name] || [];
    this.listener_list[name].push(callback);
  }
  /**
   * 发送事件数据
   * @param {*} name 事件名
   * @param {*} data 数据
   */
  send(name, data) {
    this.listener_list[name] = this.listener_list[name] || [];
    this.listener_list[name].forEach((callback) => {
      if (typeof callback == "function") callback(data);
    });
  }
  /**
   * 取消监听
   * @param {*} name 事件名
   * @param {*} callback 回调函数
   */
  remove(name, callback) {
    this.listener_list[name] = this.listener_list[name] || [];
    let index = this.listener_list[name].indexOf(callback);
    this.listener_list[name].splice(index, 1);
  }
}
